import http from "@/request/http.js";

/**
 * 歌曲 API 封装（对接 SongController）
 */
export default {
    /**
     * 获取推荐歌曲
     * @returns {Promise} 接口响应
     */
    getRecommendedSongs: () => http.get('/song/getRecommendedSongs'),

    /**
     * 获取歌曲详情
     * @param {number} songId - 歌曲ID（后端接收 Long 类型）
     * @returns {Promise} 接口响应
     */
    getSongDetail: (songId) => {
        // 新增参数验证：确保 songId 是有效数字
        if (!songId || isNaN(Number(songId))) {
            return Promise.reject(new Error('无效的歌曲ID'));
        }
        return http.get(`/song/getSongDetail/${songId}`);
    },

    /**
     * 获取所有歌曲（分页）
     * @param {Object} songDto - 分页参数（pageNum, pageSize 等）
     * @returns {Promise} 接口响应
     */
    getAllSongs: (songDto) => {
        // 基础参数验证：确保分页参数存在
        const validDto = {
            pageNum: songDto?.pageNum || 1,
            pageSize: songDto?.pageSize || 10,
            ...songDto
        };
        return http.post('/song/getAllSongs', validDto);
    }
}
